package com.ssy.lingxi.workflow.api.model.vo.response;

import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;

/**
 * 任务执行返回
 * @author 万宁
 * @version 2.0.0
 * @date 2021-04-25
 */
public class ComplexTaskCompleteVO implements Serializable {
    private static final long serialVersionUID = 5252085352630874159L;

    public ComplexTaskCompleteVO() {
        this.taskId = "";
        this.outerStep = 0;
        this.outerStatus = 0;
        this.outerStatusDesc = "";
        this.outerProperties = new HashMap<>();
        this.innerStep = 0;
        this.innerStatus = 0;
        this.innerStatusDesc = "";
        this.innerProperties = new HashMap<>();
    }

    /**
     * 下一个步骤的taskId，调用方本地记录，用做执行下一个步骤的参数
     * <p>如果流程执行完成，返回空字符串</p>
     */
    private String taskId;

    /**
     * 执行完成的外部流程步骤
     * <p>如果执行的任务流程是外部流程、带子流程的流程，返回绘制流程图时定义的step，否则为0</p>
     */
    private Integer outerStep;

    /**
     * 当前任务执行返回的外部状态
     * <p>如果执行的任务流程是外部流程、带子流程的流程，返回绘制流程图时定义的外部状态，否则为0</p>
     */
    private Integer outerStatus;

    /**
     * 外部任务状态描述
     */
    private String outerStatusDesc;

    /**
     * 当前任务执行返回的外部自定义参数
     * <p>如果执行的任务流程是外部流程、带子流程的流程，返回绘制流程图时定义的Extensions属性，否则为空Map</p>
     */
    private Map<String, String> outerProperties;

    /**
     * 执行完成的内部流程步骤
     * <p>如果执行的任务流程是内部流程、带子流程的流程，返回绘制流程图时定义的step，否则为0</p>
     */
    private Integer innerStep;

    /**
     * 当前任务执行返回的内部状态
     * <p>如果执行的任务流程是内部流程、带子流程的流程，返回绘制流程图时定义的内部状态，否则为0</p>
     */
    private Integer innerStatus;

    /**
     * 内部状态描述
     */
    private String innerStatusDesc;

    /**
     * 当前任务执行返回的内部自定义参数
     * <p>如果执行的任务流程是内部流程、带子流程的流程，返回绘制流程图时定义的内部状态，否则为0</p>
     */
    private Map<String, String> innerProperties;

    public String getTaskId() {
        return taskId;
    }

    public void setTaskId(String taskId) {
        this.taskId = taskId;
    }

    public Integer getOuterStep() {
        return outerStep;
    }

    public void setOuterStep(Integer outerStep) {
        this.outerStep = outerStep;
    }

    public Integer getOuterStatus() {
        return outerStatus;
    }

    public void setOuterStatus(Integer outerStatus) {
        this.outerStatus = outerStatus;
    }

    public String getOuterStatusDesc() {
        return outerStatusDesc;
    }

    public void setOuterStatusDesc(String outerStatusDesc) {
        this.outerStatusDesc = outerStatusDesc;
    }

    public Map<String, String> getOuterProperties() {
        return outerProperties;
    }

    public void setOuterProperties(Map<String, String> outerProperties) {
        this.outerProperties = outerProperties;
    }

    public Integer getInnerStep() {
        return innerStep;
    }

    public void setInnerStep(Integer innerStep) {
        this.innerStep = innerStep;
    }

    public Integer getInnerStatus() {
        return innerStatus;
    }

    public void setInnerStatus(Integer innerStatus) {
        this.innerStatus = innerStatus;
    }

    public String getInnerStatusDesc() {
        return innerStatusDesc;
    }

    public void setInnerStatusDesc(String innerStatusDesc) {
        this.innerStatusDesc = innerStatusDesc;
    }

    public Map<String, String> getInnerProperties() {
        return innerProperties;
    }

    public void setInnerProperties(Map<String, String> innerProperties) {
        this.innerProperties = innerProperties;
    }
}
